Separate handling of read and write of read-modify-write

ABSTRACT

A method, an apparatus, and a computer program are provided for the separate handling of read and write operations of Read-Modify-Write Commands in an XDR™ memory system. This invention allows the system to issue other commands between the reads and writes of a RMW. This insures that the dataflow time from read to write is not a penalty. A RMW buffer is used to store the read data and a write buffer is used to store the write data. A MUX is used to merge the read data and the write data, and transmit the merged data to the target DRAM via the XIO. The RMW buffer can also be used for scrubbing commands.

FIELD OF THE INVENTION

The present invention relates generally to Read-Modify-Write commands inXDR™ memory systems, and more particularly, to the separate handling ofread and write operations to reduce down time during Read-Modify-Writeoperations.

DESCRIPTION OF THE RELATED ART

An Extreme Data Rate (XDR™) memory system includes three primarysemiconductor components: a memory controller, at least one XDR™ IO Cell(XIO), and XDR™ DRAMs, available from Rambus, Inc., 4440 El Camino Real,Los Altos, Calif. 94022. With XDR™ DRAMs, the data transfer rate to andfrom memory has been dramatically increased. Conventional RMW operationsconsist of an activate, read, write, precharge sequence. One problemwith the XDR™ memory system is that the read operation to writeoperation dataflow time in a Read-Modify-Write (RMW) operation causes adelay.

The DRAM read and write operations are inherently a fixed length, whichis typically the size of a cacheline. When a read command for a read ofa smaller length comes into the memory controller, a cacheline of datacan be read from the DRAMs and the requested data can be sent on thesystem bus without any problems. However, the DRAMs cannot handle awrite operation of a smaller length than a cacheline. In the situationwhere the write is of a smaller length than a cacheline a RMW can beused. For a RMW operation the target cacheline from the DRAM is read andstored in a buffer. Subsequently, the new write data is transmitted tothe DRAM along with the rest of the data that was read from the DRAM. AMUX handles the process of merging the new data and the old data for thewrite to the DRAM. The end result is that a full cacheline of data iswritten into the DRAM. The problem is that the dataflow time between aread and a write in the XDR™ memory system causes a delay penalty.

SUMMARY OF THE INVENTION

The present invention provides a method, an apparatus, and a computerprogram for the separate handling of read and write operations of RMWcommands in an XDR™ memory system. In an XDR™ memory system theconventional method of RMW causes delay because the read to writedataflow time is too long. The present invention avoids the dataflowdelay time by separately handling the reads and writes of the RMWoperation. A RMW operation is necessary when a write command is receivedthat is smaller than a cacheline.

For this RMW operation, a read of a cacheline from the target XDR™ DRAMis accomplished and stored in a RMW buffer. Independently, the writedata for the RMW operation is stored in a write buffer. An arbiterdetermines when to issue the write command to the XDR™. The read dataand the write data are merged together by a multiplexer (MUX), and thenthe merged data is written to the target XDR™ DRAM. Since the readoperation and the write operation are handled separately, other commandscan be executed between the reads and writes of RMW operations anddataflow time is not a penalty. The RMW buffer can also be used forscrubbing. After a scrub command the target data can be stored in theRMW buffer and checked for errors.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention and theadvantages thereof, reference is now made to the following descriptionstaken in conjunction with the accompanying drawings, in which:

FIG. 1 is a block diagram illustrating an apparatus designed toaccomplish modified Read-Modify-Write (RMW) operations in an XDR™ memorysystem;

FIG. 2 is a flow chart illustrating the modified RMW process in an XDR™memory system; and

FIG. 3 is a flow chart illustrating the scrub process in an XDR™ memorysystem that uses a RMW buffer.

DETAILED DESCRIPTION

In the following discussion, numerous specific details are set forth toprovide a thorough understanding of the present invention. However,those skilled in the art will appreciate that the present invention maybe practiced without such specific details. In other instances,well-known elements have been illustrated in block diagram or flow chartform in order not to obscure the present invention in unnecessarydetail. Additionally, for the most part, details concerning networkcommunications, electromagnetic signaling techniques, and the like, havebeen omitted inasmuch as such details are not considered necessary toobtain a complete understanding of the present invention, and areconsidered to be within the understanding of persons of ordinary skillin the relevant art.

Read-modify-write (RMW) commands are accomplished by the memorycontroller in conjunction with the XIO. The memory controller issues thenecessary commands to the XIO, including read and write commands. Theconventional RMW method is an activate, read, write, precharge sequence,where the time between the read and write is determined by the DRAMs'capability. The dataflow time between a read and a write in aconventional RMW requires more time than the XDR™ DRAM minimum betweennormal read and write commands. Dataflow time can be described as thedelay involved with being able to retrieve the data from the readoperation in order to send it back to the XDR™ via the XIO for the writeoperation. This modified RMW method allows other commands to be issuedbetween the read and write of the RMW so that time is not wasted due tothe dataflow delay time.

Referring to FIG. 1 of the drawings, reference numeral 100 illustratesan apparatus designed to accomplish modified RMW operations in an XDR™memory system. The XIO 102 retrieves and transmits data to and from theDRAMs. The memory controller 130 controls the XIO by receiving commands124 and issuing them to the XIO 102. For a normal read operation thememory controller 130 receives a read command 124, and issues thatcommand to the XIO 102. Then the XIO 102 retrieves the information fromthe DRAMs and sends the data on a bus 112 to be stored in a read buffer108. The data is stored in the read buffer 108 and then sent out onanother bus 114 as the read data 128. Then, the read data 128 travels tothe area where the data was requested. For a normal write operation thememory controller 130 receives a write command 124 and issues thatcommand to the XIO 102. The XIO 102 retrieves the write data 126. Thewrite data 126 is sent on a bus 122 and stored in the write buffer 104.For a normal write operation an arbiter determines that it is time toissue a write command. The arbiter selects the write buffer 104 for awrite operation and the write data 126 is provided to the multiplexer(MUX) 110 on a communication channel 118. Then the MUX 110 sends thewrite data 126 on a bus 120 to the XIO 102. From there the XIO 102writes the data into the DRAMs.

This modified RMW operation is handled completely differently by theXDR™ memory system. First, the memory controller 130 receives a writecommand 124 that is smaller in length than a cacheline. Then, the memorycontroller 130 issues a read command to the XIO 102. The XIO 102 readsthe target data from the DRAM, which is a cachline in length. This datais sent on a bus 112 to the RMW buffer 106, where it is stored.Independently, the write data 126 requested by the write command 124travels on a bus 122 and is stored in the write buffer 104.Subsequently, an arbiter determines that it is time to issue a writecommand and selects the write buffer 104 and the RMW buffer 106 for aRMW. At this time the data from the write buffer 104 is sent on acommunication channel 118 to the MUX 110, and the data from the RMWbuffer 106 is sent on a communication channel 116 to the MUX 110. TheMUX 110 merges the data together to form a full cacheline of data. Themerged data is sent on bus 120 to the XIO 102. The XIO 102 writes themerged data to the target DRAM. This process insures that the rest ofthe data is unmodified.

This modified RMW method is more efficient for XDR™ memory systems thana conventional RMW operation because there is no delay due to thedataflow time. The reads can be executed by the XIO 102 and stored inthe RMW buffer 106. The read data values can be kept in the RMW bufferuntil the XDR™ and the arbiter are ready to do a write. This means thatthe read operations and the write operations of a RMW are handledseparately. Therefore, other commands can be handled in between the readand the write of the RMW, which means that dataflow delay time is not apenalty.

Referring to FIG. 2 of the drawings, reference numeral 200 generallydesignates a flow chart illustrating the modified RMW process in an XDR™memory system. The process begins with the memory controller receiving awrite command 202. Then the memory controller determines whether thewrite needs a RMW 204. As previously described, the write operationneeds a RMW if the write is smaller than a cacheline in length. If thewrite does not need a RMW, then the arbiter selects a write command whenthe XDR™ system is ready 206. If the write does need a RMW, then thearbiter selects a read command when the XDR™ system is ready 208. Thedata from the read is stored in the RMW buffer 208. Subsequently, thearbiter selects a write command using the merged data from the RMWbuffer and the write buffer 210. The end result is that the merged datais written into the target DRAM.

The RMW buffer 108 is also advantageous for scrubbing. Scrubbing is theprocess of reading data values in memory arrays to look for ECC biterrors. Referring to FIG. 3 of the drawings, reference numeral 300generally designates a flow chart illustrating the scrub process in anXDR™ memory system. The first step in the process consists of the memorycontroller issuing a scrub command 302. Then the XIO reads a cachelinefrom the DRAMs and stores the data value in the RMW buffer 304.Subsequently, this data from the RMW buffer is checked for errors 306.If there is no error 308 then the data is thrown away 310. If there isan error 312 then the memory controller orders a write command 314.Lastly, the XIO executes a write command to correct the data value 316of the specific DRAM. The scrub process differs from the RMW process inthat the data from the write buffer is not merged with the data from theRMW buffer in the scrub process.

It is understood that the present invention can take many forms andembodiments. Accordingly, several variations of the present design maybe made without departing from the scope of the invention. Thecapabilities outlined herein allow for the possibility of a variety ofprogramming models. This disclosure should not be read as preferring anyparticular programming model, but is instead directed to the underlyingconcepts on which these programming models can be built.

Having thus described the present invention by reference to certain ofits preferred embodiments, it is noted that the embodiments disclosedare illustrative rather than limiting in nature and that a wide range ofvariations, modifications, changes, and substitutions are contemplatedin the foregoing disclosure and, in some instances, some features of thepresent invention may be employed without a corresponding use of theother features. Many such variations and modifications may be considereddesirable by those skilled in the art based upon a review of theforegoing description of preferred embodiments. Accordingly, it isappropriate that the appended claims be construed broadly and in amanner consistent with the scope of the invention.

1. A method for handling read and write operations of Read-Modify-Write(RMW) commands in an Extreme Data Rate (XDR) Dynamic Random AccessMemory (DRAM) memory system containing a plurality of buffers and aplurality of XDR DRAMs, comprising: performing a read operation; storingread operation data in at least one of the plurality of buffers;independently storing write operation data in at least one of theplurality of buffers; transmitting read operation data and the writeoperation data simultaneously, if the write operation data is smallerthan at least one cacheline; merging the read operation data and thewrite operation data; and storing the merged data in at least one of theplurality of XDR DRAMs.
 2. The method of claim 1, wherein performing aread operation, further comprises receiving at least one cacheline ofdata from at least one of the plurality of XDR DRAMs.
 3. The method ofclaim 1, wherein storing the read operation data in at least one of theplurality of buffers, further comprises storing the read operation datain at least one RMW buffer.
 4. The method of claim 1, whereinindependently storing the write operation data in at least one of theplurality of buffers, further comprises storing the write operation datain at least one write buffer.
 5. The method of claim 1, whereintransmitting the read operation data and the write operation datasimultaneously, further comprises selecting an efficient time totransmit the read operation data and the write operation data.
 6. Themethod of claim 5, wherein selecting an efficient time to transmit theread data and the write data, further comprises executing other commands(reads and writes) in between the read operation and the write operationof the RMW.
 7. An apparatus for handling read operations and writeoperations of Read-Write-Modify (RMW) commands in an XDR DRAM memorysystem, comprising: at least one memory controller interfacing at leastone of a plurality of memory channels; at least one of a plurality ofXDR DRAMs interfacing at least one of the plurality of memory channels;at least one RMW buffer associated with at least one of the plurality ofmemory channels and associated with at least one arbiter; at least onewrite buffer associated with at least one of the plurality of memorychannels and associated with the at least one arbiter; and at least onemultiplexer (MUX) that is at least configured to merge data from the atleast one RMW buffer and the at least one write buffer in response tothe at least one arbiter.
 8. The apparatus of claim 7, wherein thememory controller is at least configured to issue read and writecommands.
 9. The apparatus of claim 7, wherein at least one memorychannel, further comprises an Input/Output Cell (XIO) that is at leastconfigured to transmit data to and from the memory controller andtransmit data to and from at least one of the plurality of XDR DRAMs.10. The apparatus of claim 7, wherein at least one RMW buffer is atleast configured to receive data from at least one of the plurality ofXDR DRAMs, store the data, and transmit the data.
 11. The apparatus ofclaim 7, wherein at least one write buffer is at least configured tostore data and transmit data.
 12. The apparatus of claim 7, wherein thearbiter is at least configured to control the transmission of data fromthe at least one RMW buffer and the transmission of data from the atleast one write buffer.
 13. The apparatus of claim 7, wherein the MUX isat least configured to receive data from the at least one RMW buffer andthe at least one write buffer, merge the data, and transmit the data toat least one of a plurality of XDR DRAMs.
 14. A computer program productfor handling read and write operations of Read-Modify-Write (RMW)commands in an Extreme Data Rate (XDR) Dynamic Random Access Memory(DRAM) memory system containing a plurality of buffers and a pluralityof XDR DRAMs, with the computer program product having a medium with acomputer program embodied thereon, wherein the computer programcomprises: computer code for performing a read operation; computer codefor storing read operation data in at least one of the plurality ofbuffers; computer code for independently storing write operation data inat least one of the plurality of buffers; computer code for transmittingread operation data and the write operation data simultaneously, if thewrite operation data is smaller than at least one cacheline; computercode for merging the read operation data and the write operation data;and computer code for storing the merged data in at least one of theplurality of XDR DRAMs.
 15. The computer program product of claim 14,wherein computer for performing a read operation, further comprisesreceiving at least one cacheline of data from at least one of theplurality of XDR DRAMs.
 16. The computer program product of claim 14,wherein computer code for storing the read operation data in at leastone of the plurality of buffers, further comprises storing the readoperation data in at least one RMW buffer.
 17. The computer programproduct of claim 14, wherein computer code for independently storing thewrite operation data in at least one of the plurality of buffers,further comprises storing the write operation data in at least one writebuffer.
 18. The computer program product of claim 14, wherein computercode for transmitting the read operation data and the write operationdata simultaneously, further comprises selecting an efficient time totransmit the read operation data and the write operation data.
 19. Thecomputer program product of claim 18, wherein computer code forselecting an efficient time to transmit the read data and the writedata, further comprises executing other commands (reads and writes) inbetween the read operation and the write operation of the RMW.
 20. Amethod for handling scrub commands in an XDR DRAM memory systemcontaining a plurality of RMW buffers and a plurality of XDR DRAMs,comprising: issuing a scrub command; reading a cachline of data from atleast one of the XDR DRAMs; storing the data in at least one of theplurality of RMW buffers; checking the data for errors; discarding thedata if there were no errors in the data; issuing a write command ifthere were errors in the data; and writing the correct data to the atleast one of the XDR DRAMs if there were errors in the data.